<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1">
    <meta name="referrer" content="never">
    <title>环视断言</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        ul {
            list-style: none;
        }
    </style>
</head>
<body>
    
    <script type="text/javascript">
        /* 
        前瞻断言：匹配后面是否跟着某个值    x表示内容，y表示跟着的内容
            肯定：跟着    x(?=y)
            否定：不跟着  x(?!y)
        后瞻断言：匹配前面是否跟着某个值
            肯定：跟着    (?<=)x
            否定：不跟着  (?<!)x
        */

        var str = "$200 can buy 300Kg Dongbei rice";

        // 后面跟着Kg的数字
        console.log(str.match(/\d+(?=Kg)/g)); // [300]
        // 后面不跟着Kg的数字
        console.log(str.match(/\d+(?!\d*Kg)/g)); // [200]
        console.log(str.match(/\d+(?!Kg)\b/g)); // [200]

        // 前面跟着 $ 的数字，支持转义字符
        console.log(str.match(/(?<=\$)\d+/g)); // [200]
        // 前面不跟着 $ 的数字，支持转义字符
        console.log(str.match(/(?<!\$\d*)\d+/g)); // [300]
        console.log(str.match(/\b(?<!\$)\d+/g)); // [300]


        var strr = `He said: "She's the one!".`;
        console.log(strr.match(/(?<=(['"]))[\s\S]+?(?=\1)/)); // ["She's the one!"]

        
    </script>
</body>
</html>